A Guide to the Health Care Provider Taxonomy Code Set
Author
Andrew Allen Bruce
Last updated
July 22, 2024
A standardized system of codes used to classify and identify health care providers.
Key Points
Purpose: Categorize health care providers by their type, classification, and specialization.
Maintenance: National Uniform Claim Committee (NUCC). Updated twice a year, in January and July.
Application: Used in various healthcare processes, including:
Electronic healthcare transactions
NPI enumeration
Medicare provider enrollment
Insurance credentialing
Claims processing
Determining network adequacy
Overview
The Health Care Provider Taxonomy Code Set is an external, non-medical data code set designed for use in an electronic environment, specifically within the ASC X12N Health Care transactions, including those mandated under HIPAA.
A taxonomy code is a unique alphanumeric code, ten characters in length, that describes a health care service provider’s type, classification, and the area of specialization.
Taxonomy codes are selected by the provider at the time of NPI registration. When providers apply for NPIs, the National Plan and Provider Enumeration System (NPPES) does not verify the accuracy of the selected taxonomy codes. It only validates that the codes exist within the current version of the code set.
The code set is structured into 3 distinct levels:
Provider Grouping
Classification
Area of Specialization
It is important for healthcare providers to select the most appropriate taxonomy code(s) as it can affect various aspects of their practice, including billing and claims processing. Selection of a taxonomy code does not replace any credentialing or validation process that the provider requesting the code should complete.
A major grouping of service(s) or occupation(s) of health care providers.
Examples:
Allopathic & Osteopathic Physicians
Dental Providers
Hospitals
Level II: Classification
A more specific service or occupation related to the Provider Grouping.
For example, the Classification for Allopathic & Osteopathic Physicians is based upon the General Specialty Certificates, as issued by the appropriate national boards.
The following boards, however, will have their general certificates appear as Level III Areas strictly due to display limitations of the code set for Boards that have multiple general certificates:
Medical Genetics
Preventive Medicine
Psychiatry & Neurology
Radiology
Surgery
Otolaryngology
Pathology
Level III: Area of Specialization
A more specialized area of the Classification in which a provider chooses to practice or make services available.
For example, the Area of Specialization for provider grouping Allopathic & Osteopathic Physicians is based upon the Subspecialty Certificates as issued by the appropriate national boards.
Providers and suppliers with the proper taxonomy code eligible for Medicare programs.
The Medicare Provider and Supplier Taxonomy Crosswalk dataset lists the providers and suppliers eligible to enroll in Medicare programs with the proper healthcare provider taxonomy code. This data includes the Medicare specialty codes, if available, provider/supplier type description, taxonomy code, and the taxonomy description.
Footnotes
Code
dplyr::tibble( ind =c(1:14), desc =c("Medicare no longer enrolls this provider type.","This is an arrangement whereby immunization services are rendered by health care providers who are under contract to the entity/individual who is enrolled in Medicare as a Mass Immunization Roster Biller. The Healthcare Provider Taxonomy Code(s) would be that (those) of the health care provider(s) who render the immunization services.","Medicare carriers use Specialty Code 87 for Pharmacies when processing prescription drugs that are paid through the Medicare Physician Fee Schedule. However, the description for Specialty Code 87 remains All Other Suppliers.","Because the Medicare Provider Type Physician/Undefined Physician Type applies to physicians,Unknown Supplier/Provider Specialty applies to other than physicians. Because Medicare does not enroll every non-physician supplier/provider type in the Healthcare Provider Taxonomy Code Set, we cannot arbitrarily link this Medicare Provider Type to all remaining supplier/provider types in the Healthcare Provider Taxonomy Code Set. In truth, this Medicare Provider Type would link to every Healthcare Provider Taxonomy Code (except those that describe physicians) that is listed in this document. We do not list them here because doing so would greatly increase the size of this document.","Because the Medicare Provider Type indicates that the provider/supplier is a Physician, we have linked this to the most generic Allopathic & Osteopathic Physicians classification. It could technically link to every Allopathic & Osteopathic Physician.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","There is no linkage to specific Healthcare Provider Taxonomy Codes because an Indian Health Service facility can be various provider types/classifications.","Medicare specialty code designation is for Part B DMEPOS purposes.","Does not meet the definition of health care provider at 45 CFR 160.103 is not eligible for an NPI."))|>gt::gt(rowname_col ="ind")|>gt::opt_table_font(gt::google_font(name ="Karla"))|>gt::cols_label( ind ="Mark", desc ="Footnote")|>gt::tab_style( style =gt::cell_text( font =gt::google_font(name ="Fira Mono")), locations =gt::cells_body(columns =c(ind)))|>gt::sub_missing(missing_text ="---")|>gt::tab_options( quarto.disable_processing =TRUE)
Footnote
1
Medicare no longer enrolls this provider type.
2
This is an arrangement whereby immunization services are rendered by health care providers who are under contract to the entity/individual who is enrolled in Medicare as a Mass Immunization Roster Biller. The Healthcare Provider Taxonomy Code(s) would be that (those) of the health care provider(s) who render the immunization services.
3
Medicare carriers use Specialty Code 87 for Pharmacies when processing prescription drugs that are paid through the Medicare Physician Fee Schedule. However, the description for Specialty Code 87 remains All Other Suppliers.
4
Because the Medicare Provider Type Physician/Undefined Physician Type applies to physicians,Unknown Supplier/Provider Specialty applies to other than physicians. Because Medicare does not enroll every non-physician supplier/provider type in the Healthcare Provider Taxonomy Code Set, we cannot arbitrarily link this Medicare Provider Type to all remaining supplier/provider types in the Healthcare Provider Taxonomy Code Set. In truth, this Medicare Provider Type would link to every Healthcare Provider Taxonomy Code (except those that describe physicians) that is listed in this document. We do not list them here because doing so would greatly increase the size of this document.
5
Because the Medicare Provider Type indicates that the provider/supplier is a Physician, we have linked this to the most generic Allopathic & Osteopathic Physicians classification. It could technically link to every Allopathic & Osteopathic Physician.
6
Medicare specialty code designation is for Part B DMEPOS purposes.
7
Medicare specialty code designation is for Part B DMEPOS purposes.
8
Medicare specialty code designation is for Part B DMEPOS purposes.
9
Medicare specialty code designation is for Part B DMEPOS purposes.
10
Medicare specialty code designation is for Part B DMEPOS purposes.
11
Medicare specialty code designation is for Part B DMEPOS purposes.
12
There is no linkage to specific Healthcare Provider Taxonomy Codes because an Indian Health Service facility can be various provider types/classifications.
13
Medicare specialty code designation is for Part B DMEPOS purposes.
14
Does not meet the definition of health care provider at 45 CFR 160.103 is not eligible for an NPI.
---title: "Provider Taxonomy Codes"subtitle: "A Guide to the Health Care Provider Taxonomy Code Set"format: html: other-links: - text: NUCC Taxonomy Site icon: bookmark-plus href: https://www.nucc.org/index.php/code-sets-mainmenu-41/provider-taxonomy-mainmenu-40 mermaid: theme: default embed-resources: true code-link: true---```{r setup}#| echo: false#| message: false#| warning: false#| comment: ""#| dev: "ragg_png"#| out.width: "100%"#| fig.align: "center"#| fig.width: 8library(tidyverse)library(downlit)library(reactable)library(reactablefmtr)library(htmltools)library(provider)```> A standardized system of codes used to classify and identify health care providers.## Key Points- **Purpose**: Categorize health care providers by their type, classification, and specialization.- **Maintenance**: National Uniform Claim Committee (NUCC). Updated twice a year, in January and July.- **Application**: Used in various healthcare processes, including: - Electronic healthcare transactions - NPI enumeration - Medicare provider enrollment - Insurance credentialing - Claims processing - Determining network adequacy## OverviewThe **Health Care Provider Taxonomy Code Set** is an external, non-medical data code set designed for use in an electronic environment, specifically within the ASC X12N Health Care transactions, including those mandated under [HIPAA](https://aspe.hhs.gov/reports/health-insurance-portability-accountability-act-1996 "Health Insurance Portability and Accountability Act of 1996").A taxonomy code is a unique alphanumeric code, ten characters in length, that describes a health care service provider's type, classification, and the area of specialization.Taxonomy codes are selected by the provider at the time of NPI registration. When providers apply for NPIs, the National Plan and Provider Enumeration System (NPPES) does not verify the accuracy of the selected taxonomy codes. It only validates that the codes exist within the current version of the code set.The code set is structured into 3 distinct levels:1. Provider Grouping2. Classification3. Area of SpecializationIt is important for healthcare providers to select the most appropriate taxonomy code(s) as it can affect various aspects of their practice, including billing and claims processing. Selection of a taxonomy code does not replace any credentialing or validation process that the provider requesting the code should complete.## Hierarchy```{mermaid}%%| label: tx-mermaid%%| fig-cap: "Example of Taxonomy Hierarchy"%%| echo: falseflowchart LR A{{Group}} -.- D(Multi-Specialty) A{{Group}} -.- E(Single-Specialty) B{{Individual}} --> F(Allopathic) B{{Individual}} -.- G(Behavioral) C{{Non-Individual}} -.- H(Hospitals) C{{Non-Individual}} -.- I(Laboratories) F(Allopathic) --> J([Anesthesiology]) J([Anesthesiology]) --o K[[207L00000X]] J([Anesthesiology]) --> L>Addiction Medicine] L>Addiction Medicine] --o M[[207LA0401X]]```::: callout## Level I: **Provider Grouping**A major grouping of service(s) or occupation(s) of health care providers.**Examples:**- Allopathic & Osteopathic Physicians- Dental Providers- Hospitals:::::: callout## Level II: **Classification**A more specific service or occupation related to the Provider Grouping.For example, the Classification for Allopathic & Osteopathic Physicians is based upon the General Specialty Certificates, as issued by the appropriate national boards.The following boards, however, will have their general certificates appear as **Level III** Areas strictly due to display limitations of the code set for Boards that have multiple general certificates:- Medical Genetics- Preventive Medicine- Psychiatry & Neurology- Radiology- Surgery- Otolaryngology- Pathology:::::: callout## Level III: Area of SpecializationA more specialized area of the Classification in which a provider chooses to practice or make services available.For example, the Area of Specialization for provider grouping Allopathic & Osteopathic Physicians is based upon the Subspecialty Certificates as issued by the appropriate national boards.:::<br>```{r}#| message: false#| warning: false#| code-fold: truetaxonomy <- provider::taxonomies(shape ="wide") |>select(grouping, classification, specialization, code)htmltools::browsable( htmltools::tagList( htmltools::tags$button("Expand/collapse all", onclick ="Reactable.toggleAllRowsExpanded('taxonomy-table')" ), reactable::reactable( taxonomy,groupBy =c("grouping", "classification", "specialization" ),elementId ="taxonomy-table",columns =list(grouping = reactable::colDef(name ="Provider\nGrouping" ),classification = reactable::colDef(name ="Classification" ),specialization = reactable::colDef(name ="Area of\nSpecialization",na ="None" ),code = reactable::colDef(name ="Taxonomy\nCode",style =list(fontFamily ="monospace", whiteSpace ="pre") ) ),# compact = TRUE,searchable =TRUE,pagination =FALSE,highlight =TRUE,bordered =TRUE,theme =reactableTheme(borderColor ="#dfe2e5",stripedColor ="#f6f8fa",highlightColor ="#f0f5f9",cellPadding ="28px 16px",searchInputStyle =list(width ="100%") ) ) ) )```<br>## Medicare Crosswalk> Providers and suppliers with the proper taxonomy code eligible for Medicare programs.The [Medicare Provider and Supplier Taxonomy Crosswalk](https://data.cms.gov/provider-characteristics/medicare-provider-supplier-enrollment/medicare-provider-and-supplier-taxonomy-crosswalk) dataset lists the providers and suppliers eligible to enroll in Medicare programs with the proper healthcare provider taxonomy code. This data includes the Medicare specialty codes, if available, provider/supplier type description, taxonomy code, and the taxonomy description.### Footnotes```{r}#| message: false#| warning: false#| code-fold: truedplyr::tibble(ind =c(1:14),desc =c("Medicare no longer enrolls this provider type.","This is an arrangement whereby immunization services are rendered by health care providers who are under contract to the entity/individual who is enrolled in Medicare as a Mass Immunization Roster Biller. The Healthcare Provider Taxonomy Code(s) would be that (those) of the health care provider(s) who render the immunization services.","Medicare carriers use Specialty Code 87 for Pharmacies when processing prescription drugs that are paid through the Medicare Physician Fee Schedule. However, the description for Specialty Code 87 remains All Other Suppliers.","Because the Medicare Provider Type Physician/Undefined Physician Type applies to physicians,Unknown Supplier/Provider Specialty applies to other than physicians. Because Medicare does not enroll every non-physician supplier/provider type in the Healthcare Provider Taxonomy Code Set, we cannot arbitrarily link this Medicare Provider Type to all remaining supplier/provider types in the Healthcare Provider Taxonomy Code Set. In truth, this Medicare Provider Type would link to every Healthcare Provider Taxonomy Code (except those that describe physicians) that is listed in this document. We do not list them here because doing so would greatly increase the size of this document.","Because the Medicare Provider Type indicates that the provider/supplier is a Physician, we have linked this to the most generic Allopathic & Osteopathic Physicians classification. It could technically link to every Allopathic & Osteopathic Physician.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","Medicare specialty code designation is for Part B DMEPOS purposes.","There is no linkage to specific Healthcare Provider Taxonomy Codes because an Indian Health Service facility can be various provider types/classifications.","Medicare specialty code designation is for Part B DMEPOS purposes.","Does not meet the definition of health care provider at 45 CFR 160.103 is not eligible for an NPI." ) ) |> gt::gt(rowname_col ="ind") |> gt::opt_table_font(gt::google_font(name ="Karla")) |> gt::cols_label(ind ="Mark",desc ="Footnote") |> gt::tab_style(style = gt::cell_text(font = gt::google_font(name ="Fira Mono")),locations = gt::cells_body(columns =c(ind)) ) |> gt::sub_missing(missing_text ="---") |> gt::tab_options(quarto.disable_processing =TRUE )```<br>```{r}#| message: false#| warning: false#| code-fold: truexwalk <- provider::taxonomy_crosswalk(tidy =FALSE) |> janitor::clean_names() |> dplyr::slice(1:558) |> dplyr::mutate(.id = dplyr::row_number(),.after = provider_taxonomy_code ) |> tidyr::separate_longer_delim(cols = provider_taxonomy_description_type_classification_specialization,delim ="/" ) |> dplyr::mutate(.group = dplyr::row_number(), .by =c(provider_taxonomy_code, .id) ) |> tidyr::pivot_wider(names_from = .group,values_from = provider_taxonomy_description_type_classification_specialization,names_prefix ="tax" ) |> tidyr::unite("specialization",c(tax3, tax4, tax5, tax6),sep ="/",na.rm =TRUE ) |> dplyr::mutate( dplyr::across( dplyr::where(is.character),~dplyr::na_if(., "") ) )xwalk |> dplyr::reframe(note1 = stringr::str_extract(medicare_specialty_code, "(?<=\\[).*?(?=\\])"),note2 = stringr::str_extract( medicare_provider_supplier_type_description, "(?<=\\[).*?(?=\\])"),med_spec = stringr::str_remove_all(medicare_specialty_code, "\\[[0-9]{1,2}\\]"),med_type = stringr::str_remove_all(medicare_provider_supplier_type_description, "\\[[0-9]{1,2}\\]"),tax_code = provider_taxonomy_code,tax_grouping = dplyr::na_if(tax1, ""),tax_classification = dplyr::na_if(tax2, ""),tax_specialization = dplyr::na_if(specialization, "") ) |> dplyr::slice(1:30) |> gt::gt() |> gt::opt_table_font(gt::google_font(name ="Karla")) |> gt::tab_spanner(label ="Medicare Specialty",columns =c(med_spec, med_type) ) |> gt::tab_spanner(label ="Provider Taxonomy",columns =c(tax_code, tax_grouping, tax_classification, tax_specialization) ) |> gt::cols_label(med_spec ="Code",med_type ="Provider Type/Description",tax_code ="Code",tax_grouping ="Grouping",tax_classification ="Classification",tax_specialization ="Specialization" ) |> gt::tab_style(style = gt::cell_text(font = gt::google_font(name ="Fira Mono")),locations = gt::cells_body(columns =c(med_spec, tax_code)) ) |> gt::sub_missing(missing_text ="---") |> gt::tab_options(quarto.disable_processing =TRUE )```## Sources- [Health Care Provider Taxonomy Code Set v24.0 (PDF)](https://www.nucc.org/images/stories/PDF/taxonomy_24_0.pdf)- [taxonomy.NUCC.org](https://taxonomy.nucc.org)- [CMS.gov](https://www.cms.gov/medicare/enrollment-renewal/providers-suppliers/health-care-taxonomy)- [ASAM.org](https://www.asam.org/docs/default-source/advocacy/taxonomy-one-pager.pdf?sfvrsn=b5e848c2_2)